查看原文
其他

Sora:技术细节推测与原理解读,行业影响与成功关键

The following article is from 腾讯云开发者 Author 俞涛

技术圈每年都会有一个概念火爆全网,从 21 世纪第一个十年以来,中文技术圈流行过的概念包括但不限于:移动开发、人工智能、区块链、低代码、元宇宙、NFT……



创投圈有句名言——“领先半步是先驱,领先一步是先烈”,低代码的热度已经凋零,元宇宙的风随着 Vision Pro 的发布做了个仰卧起坐,又躺了回去。只有以 ChatGPT 为代表的大语言模型,才真正把人工智能的热度重新拉了起来,推到了一个前所未有的高度——以前觉得 AGI 是痴人说梦,现在看发现自己可能才是坐井观天。

每个时代总会有所谓的大势,也总会有“好风凭借力,送我上青云”的机遇,总有人要起飞,为什么不是你?抛开炒作的喧嚣,回归技术的本源,先从了解、理解新兴技术开始。




01



背景
在国内外大多数 AI 厂商还在卷大语言模型之际,OpenAI 悄无声息地发布了文生视频(text-to-video,简称 t2v)模型 Sora [1],仅仅几个视频 demo,就让整个 AI 圈子从惊讶到恐惧,惊讶于 Sora 生成的视频已经到达工业应用级别,恐惧于现有的 t2v 模型与 Sora 的差距竟然如此之大。


Sora 要解决的任务其实非常好理解,就是给定一段文本,模型需要根据该文本生成相应的视频,简单说就是 text-to-video(t2v)。t2v 本身并不是一个新问题,很多厂商都在研究 t2v 模型,只是当前的 t2v 模型生成的视频普遍质量较差,很难到达工业应用级别。在 Sora 出现前大家的普遍认知是:t2v 是一个很难的任务,工业级别 t2v 模型(或者说能真正实用的 t2v 模型)短时间内应该很难实现。然而,OpenAI 又又又一次打了所有人的脸,Sora 的发布意味着,这一天已经来了。


先看个 Sora 官方博客展示的 demo,当你向 Sora 输入:




“A stylish woman walks down a Tokyo street filled with warm glowing neon and animated city signage. She wears a black leather jacket, a long red dress, and black boots, and carries a black purse. She wears sunglasses and red lipstick. She walks confidently and casually. The street is damp and reflective, creating a mirror effect of the colorful lights. Many pedestrians walk about.”




Sora 则根据该文本生成以下长达1分钟的高清视频。



播放这个 demo 展现了 Sora 至少有以下突破:

  1. 画质突破:视频非常高清,细节极其丰富;

  2. 帧率和连续性突破:视频帧率高、连续性好(无闪烁或明显的时序不一致);

  3. 时长突破:相比之前 t2v 模型仅能生成几秒的时长,Sora 可以生成长达1分钟的视频,这是之前 t2v 模型不敢想象的;

  4. 物理规则理解突破:视频中物体的运动、光影等似乎都非常符合自然世界的物理规则,整个视频看上去都非常自然和逼真。


那么 OpenAI 到底用了什么魔法能让 Sora 如此惊艳?接下来我们通过 OpenAI 给出的 Sora 技术报告来解答。


PS:该技术报告非常简陋,技术细节几乎没有,只给了大致的建模方法。




02



Sora 原理解读


   2.1 Sora 原理


如果用一句话来描述 Sora 训练建模过程,可以是:将原始视频通过一个视觉编码器(Visual Encoder)编码到隐空间(Latent Space)形成隐时空块(Spacetime Latent Patches),这些隐时空块(结合 text 信息)通过 Transformer 做 Diffusion [2, 3, 4]的训练和生成,将生成的隐时空块再通过视觉解码器(Visual Decoder)解码到像素空间(Pixel Space)。所以整个过程就是:Visual Encoding -> Latent Diffusion with Diffusion Transformer (DiT) [4] -> Visual Decoding。


(1)Visual Encoding



这一步其实很好理解,就是通过一个变分自编码器(VAE)[5] 的 encoder 将高维的原始视频映射(压缩)到较为低维的隐空间(注意:不仅仅是空间上压缩了,时间上也进行了压缩),即得到该视频的低维隐空间特征(可以看成一个大的3D tensor),为了后续 Transformer 计算方便,将这个特征切成不重叠的 3D patches,再将这些 patches 拉平成一个 token 序列,这个 token 序列其实就是原始视频的表征了(即 Visual token 序列)。


(2)Latent Diffusion with DiT


在得到视觉表征(上述 Visual token 序列)后,Sora 借鉴了 DiT [4],使用 Transformer 来做 Diffusion Model 的训练,使用 Transformer 的好处在于可以输入任意长度的token序列,这样就不再限制输入视频的尺寸和时长,并且模型很容易 scale up(OpenAI 表示这个我熟)。同时,因为 Sora 想解决 t2v 的问题,所以 Sora 会将 text 的表征以某种形式 condition 到 Visual tokens 上(Sora 技术报告中未披露,但后文我会分析最可能的实现方法)来约束生成。


在 Diffusion Transformer 的训练中,给定噪声输入(e.g., 噪声 patches)并 conditioned on text 特征,模型被训练去预测原始视频的 patches(预测过程又叫 denoising 过程,具体可以参考 DDPM [2] 中的训练算法),示意图如下:



(3)Visual Decoding


第(2)步中,Diffusion Transformer 可以生成的其实不是像素空间的视频,而是隐空间的视频表征(Denoised Patches),这些 patches reshape 成视频 3D 特征再经过第(1)步中的 VAE 的 decoder,就可以映射回像素空间,得到最后生成的视频。


   2.2 Sora 的重要性质


(1)Sora 可以灵活地采用不同时长、分辨率和长宽比的视频


OpenAI 发现之前的方法大多采用固定尺寸的视频(比如 4s 的256x256视频)去训练模型,和现实中任意长度、长宽比有较大 gap,而采用原始尺寸的视频训练模型效果更好。得益于 Sora 采用的 Transformer 结构,Sora 可以输入任意多个 Visual Patches(初始为 Noise Patches),即可生成任意尺寸的视频。


(2)Sora 有很强的语言理解能力


训练 t2v 模型需要大量带有文本标注的视频,OpenAI 采用 DALL·E 3 [6] 中的 re-captioning 技术来解决。首先训练一个高质量的视频标注模型(captioner model),然后它为训练集中的所有视频生成文本字幕。另外,进一步利用 GPT 将视频标注模型生成的简短文本扩展成更长的文本有利于还利用 Sora 准确遵循用户文本提示生成高质量视频。


   2.3 重要细节推测


Sora 的技术报告没有任何细节,仅仅告知大家大致的建模方法,但有一些细节的实现是可以推测 or 猜测的。


(1)Visual Encoder可能的结构:因为 Sora 在 Visual encoding 时也压缩了时间维度,所以 Sora 可能采用从零开始训练的 3D conv 版的 VAE。Sora 这里没有像之前工作那样,简单地采用 Stable Diffusion(SD) [3] 预训练好的 2D conv 版的 VAE。现成的 SD 的 VAE encoder 用来压缩视频最大的问题在于时间维度没有下采样,SD 的 VAE 承担了将原本 sparse 的数据压缩到 compact 的 latent domain 再进行 Diffusion 过程,从而大幅度提高 training 和 inference 的效率。然而,直接运用 2D VAE 缺乏了在时间维度的压缩,使得其对应的 latent domain 不够紧凑。实际上,这是一个历史遗留问题,大部分研究工作受算力等因素影响选择直接利用 SD 的预训练权重(Unet 部分)、保留了 2D VAE。


(2)Visual encoding 中视频的 patches 如何 flatten 成 token 序列?大概率借鉴 DiT,先 flatten 这些 patches,然后过一个 linear 层,将 patches embed 成 tokens。


(3)Diffusion 中如何将 text 信息引入?大概率还是借鉴 DiT 和 SD,在每个 Transformer block 中,将 Visual tokens 视为 query,将 text tokens 作为 key 和 value,进行 cross attention,不断地 conditioned on text tokens。


   2.4 尚未披露关键信息


(1)模型:模型的具体结构、模型的参数量、关键参数(patch size、token 数目等)如何?


(2)数据:用了哪些数据?规模如何?


(3)资源:用了多少算力?训练了多久?


(4)如何处理高帧率、时间长、高分辨率的视频?目前主流的视频生成模型都是 cascade 结构,也就是先生成低分辨率、低帧率的视频,再不断地在时间和空间维度上 upsample。不知道 Sora 是否是直接一次性输出其展示的结果,如果是那样,那又会有多少 token 呢?


(5)如何解决 motion 的问题?目前的视频生成模型普遍生成的 motion 都不太好,最简单的例子就是“人走路”,大部分模型无法生成连贯的、长时间的、合理的人行走的过程。而 Sora 生成的结果在连贯性、合理性上相比之前的模型都有着断代的领先。那到底是什么促使了这样的结果呢?是模型尺寸的 scale up 吗?需要 scale up 到什么 size?还是数据的收集和清洗呢?以及要做到什么程度呢?


   2.5 Sora 的应用


  • 视频创作:用户可以根据文本生成高质量视频;

  • 扩展视频:可以在给定的视频或图片基础上,继续向前或向后延申视频;

  • Video-to-video editing:例如将 SDEdit [7] 应用于 Sora,可以很容易改变原视频的风格;

  • 视频连结/过渡/转场:可以将两个视频巧妙地融合到一起,使用 Sora 在两个输入视频之间逐渐进行插值,从而在具有完全不同主题和场景构成的视频之间创建无缝过渡;

  • 文生图:图像可以视为单帧的视频,故 Sora 也能实现文生图。


   2.6 Sora 的局限性


原本中提到:“Sora 目前作为模拟器(simulator)表现出许多局限性。例如,它不能准确地模拟许多基本相互作用的物理过程,例如玻璃破碎。其他交互过程(例如吃食物)也不总是能正确预测。我们在登陆页面中列举了模型的其他常见故障模式,例如长时间样本中出现的不连贯性或对象的凭空出现。”


总结一下主要是:

(1)对世界的物理规则的理解还不完美;

(2)长视频生成时容易出现不连贯或者物体凭空出现的现象。




03



Sora 对行业的影响


Sora 发布以后,国内的创投圈敏锐地发现了其可能对行业造成的冲击与影响。事实上,早在此前的 OpenAI 首次开发者大会上发布的 AI Agent 功能,就几乎宣布了一大批 Agent 领域创业公司的“死亡”。


参考阅读:OpenAI震撼技术圈!0代码构建Assistants API,技术原理探秘


这次 Sora 的发布,对 AI 视频行业而言不啻为一记惊雷,从好的角度想可以看到未来的前景非常广阔,然而从版本落后者的角度来看,也部分解决了领域创业者的焦虑——反正也追不上了?

除了显而易见的 AI 视频行业,传统影视公司、游戏公司以及广告营销类行业,可能都会迎来不小的冲击与机遇。


  • 短视频内容创作可能进入新的时代:Sora 可以提供丰富的视频素材;

  • 视频剪辑和编辑:Sora 具备相关应用能力;

  • 更逼真的数字人:用户可以得到自己的“理想型”;

  • 娱乐化:从图像一键生成视频;

  • 游戏行业:游戏引擎受到 Sora 挑战;

  • 图形学:未来可能不复存在。


(留言讨论区,欢迎大家评论补充)




04



Sora 成功的关键


  • 大规模训练:这点毋庸置疑。大模型、大数据量、使用大规模算力,OpenAI 基本操作。

  • 敢于突破常规、不屑于刷点:之前工作基本都采用 SD 预训练的 Visual Encoder,也知道该 encoder 多少有点不合理(比如只能处理固定 size 的输入),但没有人真的去重新训练一个更合理的 encoder(当然,更可能是算力不支持)。而 OpenAI 发现问题,就用算力来解决问题(大概率重新训练 Visual Encoder)。

  • 实事求是+绝对领先的 sense:自回归的建模方式在 LLM 中大获成功,GPT 系列也出自 OpenAI,但这不代表“Autoregressive is everything”,Sora 告诉大家,生成视频无需采用自回归,直接 3D 建模 +Transformer encoder 结构就 ok。

  • AGI 理念从上至下传播:Sam Altman 绝对是一个有大格局的人物,其最终目标是实现 AGI,我想整个 OpenAI 应该都会贯彻这样的理念,不管是 ChatGPT 还是 Sora,都能看到 AGI 的影子。




05



写在最后


张小龙曾经提到过一个观点,“财富就是知识”。我们以前会认为财富是资源、资产、土地、房子等等,但在现在和未来的社会里,财富的本质就是知识,是知识所创造的价值。譬如一辆100万美元的法拉利跑车,如果撞毁变成一堆废铁,这堆废铁大概只能卖1万美元,也就是说,这辆法拉利里有99万美元是由“如何把铁组装成汽车”的知识所创造的价值。我们现在生活的社会,人类创造的财富要远远超过10万年前,这些财富不是自然界赋予的,是人类用不断增长的知识创造的。

无论是此前的 ChatGPT 还是现在的 Sora,如果你不去了解它的知识从而转化为自身的价值,你或许就是最容易被替代的那个人。

Sora 在日语中是“天空”的意思,引申含义还有“自由”。Sora 官方介绍页里就有无数象征自由的纸飞机在无序地探索自由,你也应该乘上想象的翅膀,探索你的知识财富与精神自由~


本篇仅仅为个人的思考和总结,如有不妥之处,欢迎指正与交流。


参考文献

[1] OpenAI. "Video generation models as world simulators." OpenAI Blog. 2024.

[2] Ho, Jonathan, Ajay Jain, and Pieter Abbeel. "Denoising diffusion probabilistic models." Advances in neural information processing systems 33 (2020): 6840-6851.

[3] Rombach, Robin, et al. "High-resolution image synthesis with latent diffusion models." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022.

[4] Peebles, William, and Saining Xie. "Scalable diffusion models with transformers." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023.

[5] Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013).

[6] Betker, James, et al. "Improving image generation with better captions." Computer Science. https://cdn.openai.com/papers/dall-e-3. pdf 2.3 (2023): 8.

[7] Meng, Chenlin, et al. "Sdedit: Guided image synthesis and editing with stochastic differential equations." arXiv preprint arXiv:2108.01073 (2021).


-End-
原创作者|俞涛

参考阅读:




本文由高可用架构转载。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿


继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存